package com.xjd.edu.toolkit;

import java.time.ZoneId;
import java.time.ZoneOffset;

/**
 * 全局常量
 *
 * @author wangyu
 * @created 2025/3/15 13:49
 */
public interface ToolkitConstants {

    /**
     * 全局时区设置，应避免直接使用系统时区：ZoneId.systemDefault()，避免服务器未设置时区导致程序错误
     */
    ZoneId ZONE_ID = ZoneId.of("Asia/Shanghai");

    /**
     * 全局时区设置
     *
     * @see #ZONE_ID
     */
    ZoneOffset ZONE_OFFSET = ZoneOffset.ofHours(8);

    /**
     * 请求链接跟踪标识消息头名称
     */
    String HEADER_REQUEST_ID_NAME = "X-Request-Id";

    /**
     * 请求上游消息头
     */
    String HEADER_REQUEST_URI_NAME = "X-Request-Uri";

    /**
     * 分页查询结果集上限（也用作列表输入参数上限）
     */
    int MAX_PAGE_SIZE = 10_000;
    /**
     * Redis分页查询结果集上限（也用作列表输入参数上限）
     */
    int MAX_REDIS_PAGE_SIZE = 1_000;

    /**
     * 使用上下文传递类型名称
     */
    String API_TYPE_MDC_KEY = "__API_TYPE_MDC";

    /**
     * 使用上下文传递方法名称
     */
    String API_METHOD_MDC_KEY = "__API_METHOD_MDC";

}
